package com.ybwh.springboot2.minio;

import io.minio.MinioClient;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;

@ConfigurationProperties(prefix = "oss.minio")
@Data
public class MinioConfig {

    private String endpoint;
    private String accessKey;
    private String secretKey;
    /**
     * 存储桶的命名定义规则为：
     *
     * 1.存储桶名称必须介于 3 到 63 个字符之间
     *
     * 2.存储桶名称只能由小写字母、数字、句点 (.) 和连字符 (-) 组成
     *
     * 3.存储桶名称必须以字母或数字开头和结尾
     *
     * 4.存储桶名称不得采用 IP 地址格式（例如，192.168.5.4）
     */
    private String bucket;

    @Bean()
    public MinioClient minioClient() {
        return MinioClient.builder()
                .endpoint(endpoint)
                .credentials(accessKey, secretKey)
                .build();
    }
}